Skip to content

BWB300 baseline model bench test#1015

Open
xjjiang wants to merge 113 commits intoOpenMDAO:mainfrom
xjjiang:BWB_FLOPS_300
Open

BWB300 baseline model bench test#1015
xjjiang wants to merge 113 commits intoOpenMDAO:mainfrom
xjjiang:BWB_FLOPS_300

Conversation

@xjjiang
Copy link
Copy Markdown
Contributor

@xjjiang xjjiang commented Mar 4, 2026

Summary

This PR implements another BWB model from FLOPS - BWB300 baseline model.

The BWB300 baseline model implemented here is not exactly the same as the original FLOPS model. This is because Aviary did not implement all the features of FLOPS. More precisely, here are the differences:

  • Set NOPRO = 0, Takeoff profile for noise because noise module is not implemented in Aviary.
  • Do not set WF = 50.0 because the scenario Aircraft.Fuselage.MAX_WIDTH = 50.0 is not implemented in BWBDetailedCabinLayout component. Can override later.
  • Do not set DF = 14.16 because the scenario Aircraft.Fuselage.MAX_HEIGHT = 14.16 is not implemented in BWBDetailedCabinLayout component. Can override later.
  • Do not set XLW = 50.0, In Aviary, it is mapped to Aircraft.Wing.ROOT_CHORD which is an output from BWBDetailedCabinLayout component. Can override later.
  • Set DGW = 600000., ! We set Mission.Design.GROSS_MASS = 600,000 manually. The original logic is DGW = 1, IF(DGW < 5) DG = DGW * GW, but GW is not read in to Aviary. Should we create a new Aviary variable for GW (Ramp weight)?
  • GLOV = 1230.5, ! Originally, GLOV = 0, but computation of Aircraft.Wing.GLOVE_AND_BAT is not implemented. So, take the value from FLOPS run. See subroutine DEFINE().
  • SPAN = 186.631829293424, ! Aircraft.Wing.SPAN = 186.3 is incorrect. FLOPS updates value during its run. If we input both Aircraft.Wing.SPAN and Aircraft.Wing.OUTBOARD_SEMISPAN, they must satisfy Aircraft.Wing.SPAN Aircraft.Fuselage.MAX_WIDTH + Aircraft.Wing.OUTBOARD_SEMISPAN*2.
  • TCSOB is not read in to Aviary. Assume it is the same as TCF (i.e. Aircraft.Fuselage.HEIGHT_TO_WIDTH_RATIO). Should we add TCSOB (meaning Fuselage thickness/chord ratio at side of body) to Aviary? This will affect the computation of BWB_THICKNESS_TO_CHORD_DISTRIBUTION[1].
  • Aircraft.VerticalTail.WETTED_AREA = 125, even though Aircraft.VerticalTail.NUM_TAILS = 0. It is ignored.
  • AR = 5.4252, 0.0, 0.0, 0.0, 0.0, 0.0, is a design variable. But when FLOPS runs, AR is computed. In my aviary model, I have to comment out the line aircraft:wing:aspect_ratio,5.4252,unitless in .csv file in order to follow FLOPS computation.
  • Do not set HHT = -100. This scenario (Aircraft.HorizontalTail.VERTICAL_TAIL_FRACTION) is not taken care by fortran_to_aviary().
  • Do not set SWPVT = -100. This scenario (i.e. Aircraft.VerticalTail.SWEEP) is not taken care by fortran_to_aviary().
  • Do not set ARVT = -100. This scenario (i.e. Aircraft.VerticalTail.ASPECT_RATIO) is not taken care by fortran_to_aviary().
  • Do not set TRVT = -100. This scenario (i.e. Aircraft.VerticalTail.TAPER_RATIO) is not taken care by fortran_to_aviary().
  • Do not set FULWMX = -1. This scenario (i.e. Aircraft.Fuel.WING_FUEL_CAPACITY) is not taken care by fortran_to_aviary().

Related Issues

  • Resolves #

Backwards incompatibilities

None

New Dependencies

None

… the different result of Aircraft.Wing.BENDING_MATERIAL_FACTOR (or BT as returned by subroutine BNDMAT) between Aviary and FLOPS.
@xjjiang xjjiang requested a review from cmbenne3 April 10, 2026 22:44
Comment thread aviary/subsystems/mass/flops_based/crew.py Outdated
Comment thread aviary/subsystems/mass/flops_based/wing_detailed.py Outdated
Comment thread aviary/variable_info/variable_meta_data.py Outdated
@xjjiang xjjiang requested a review from jkirk5 April 17, 2026 18:08
Copy link
Copy Markdown
Contributor

@jkirk5 jkirk5 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needed update to preprocessors.py

if engine_models is not None:
preprocess_propulsion(aviary_options, engine_models, meta_data, verbosity)

if Aircraft.Wing.ASPECT_RATIO_REFERENCE in aviary_options:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that fortran_to_aviary has been updated to handle the ASPECT_RATIO_REFERENCE = 0 case, this part of the preprocessor needs to be rewritten to follow the following case:
ASPECT_RATIO_REFERENCE not in aviary_options, in which case we set it to ASPECT_RATIO (and warn user)

The same goes for THICKNESS_TO_CHORD_REFERENCE

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We no longer need to check if the variable is provided and equals zero, so that code no longer needs to be here - I am basically asking for this entire section to be replaced

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you saying that Aircraft.Wing.ASPECT_RATIO_REFERENCE and Aircraft.Wing.THICKNESS_TO_CHORD_REFERENCE and taken care by fortran_to_aviary by a PR of someone else? They are not in this PR.

@xjjiang xjjiang requested a review from jkirk5 April 20, 2026 19:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants